#include <iostream>
#include <list>

using namespace std;

/*
    (1)	void unique();
    (2)	template <class BinaryPredicate>
        void unique (BinaryPredicate binary_pred);
    删除重复值
    没有参数 （1）
        的版本将从容器中每个连续的相等元素组中删除除第一个元素之外的所有元素。
        请注意，仅当元素与紧邻其前面的元素进行比较时，才会从列表容器中删除该元素。因此，此功能对于排序列表特别有用。
    第二个版本 （2）
        将确定元素“唯一性”的特定比较函数作为参数。事实上，任何行为都可以实现（不仅仅是相等比较），但请注意，
        该函数将为所有元素对（其中 i 是元素的迭代器，从第二个开始）调用 binary_pred（*i，*（i-1）），如果谓词返回 true，则从列表中删除 i。

*/

int main()
{
    list<int> l = {1, 2, 2, 3, 4, 4, 4, 5, 5, 6};
    l.unique();
    for (auto i : l)
    {
        cout << i << " ";
    }
    
    cout << endl;

}